package com.sdry.mapper.llm;

import java.util.List;
import java.util.Map;

import com.sdry.model.llm.EmployeeRecord;
import com.sdry.model.llm.Team;
import com.sdry.model.llm.TeamRecord;
import com.sdry.model.llm.UserReport;

/**
 * 
 * @Title:ProductionReportMapper
 * @Package com.sdry.mapper.llm
 * @author llm
 * @date 2018年12月24日
 * @version 1.0
 */
public interface ProductionReportMapper {

	/**   
	 * 根据班组名称获取班组信息
	 * @Title:getTeamByTeamName   
	 * @param string
	 * @return             
	 */
	Team getTeamByTeamName(String teamName);

	/** 
	 * 根据日期和班组ID查询排产单ID  
	 * @Title:getTeamRecordByTimeAndTeamId   
	 * @param map
	 * @return             
	 */
	TeamRecord getTeamRecordByTimeAndTeamId(Map<String, Object> map);

	/**   
	 * 当天某人膜丝产量统计  
	 * @param map
	 * @return             
	 */
	Integer getCountMSByTimeAndUid(Map<String, Object> map);
	/**   
	 * 当天某人组装产量统计  
	 * @param map
	 * @return             
	 */
	Integer getCountZZByTimeAndUid(Map<String, Object> map);
	/**   
	 * 当天某人离心产量统计  
	 * @param map
	 * @return             
	 */
	Integer getCountLXByTimeAndUid(Map<String, Object> map);
	/**   
	 * 当天某人固化产量统计  
	 * @param map
	 * @return             
	 */
	Integer getCountGHByTimeAndUid(Map<String, Object> map);
	/**   
	 * 当天某人切割产量统计  
	 * @param map
	 * @return             
	 */
	Integer getCountQGByTimeAndUid(Map<String, Object> map);
	
	/**   
	 * 查询某个员工某月在膜丝工位的工时  
	 * @param map
	 * @return             
	 */
	List<EmployeeRecord> getEmployeeRecordInMS(Map<String, Object> map);
	/**   
	 * 查询某个员工某月在组装工位的工时  
	 * @param map
	 * @return             
	 */
	List<EmployeeRecord> getEmployeeRecordInZZ(Map<String, Object> map);
	/**   
	 * 查询某个员工某月在离心工位的工时  
	 * @param map
	 * @return             
	 */
	List<EmployeeRecord> getEmployeeRecordInLX(Map<String, Object> map);
	/**   
	 * 查询某个员工某月在拆端盖工位的工时  
	 * @param map
	 * @return             
	 */
	List<EmployeeRecord> getEmployeeRecordInGH(Map<String, Object> map);
	/**   
	 * 查询某个员工某月在切割工位的工时   
	 * @param map
	 * @return             
	 */
	List<EmployeeRecord> getEmployeeRecordInQG(Map<String, Object> map);

	/**   
	 * 根据日期和员工ID查询报表   
	 * @param map
	 * @return             
	 */
	List<UserReport> listUserReportByTimeAndUid(Map<String, Object> map);
	
	/**   
	 * 新增人员报表
	 * @param userReport
	 * @return             
	 */
	Integer saveUserReport(UserReport userReport);
	
	/**   
	 * 修改人员报表
	 * @param userReport
	 * @return             
	 */
	Integer updateUserReport(UserReport userReport);
	
	/**   
	 * 删除人员报表
	 * @param urid
	 * @return             
	 */
	Integer deleteUserReport(Long urid);

	/**   
	 * 根据年月查询人员报表
	 * @param yearMonth
	 * @return             
	 */
	List<UserReport> getUserReportByMonth(String yearMonth);

	/**   
	 * 删除一个月的数据
	 * @param lastMonth
	 * @return             
	 */
	Integer deleteUserReportByMonth(String yearMonth);

	/**   
	 * 根据某天和uid获取膜丝工位产量
	 * @Title:getCountMousseByTimeAndUid   
	 * @param map
	 * @return             
	 */
	Integer getCountMousseByTimeAndUid(Map<String, Object> map);

	/**   
	 * 根据某天和uid获取组装工位产量
	 * @Title:getCountAssembleByTimeAndUid   
	 * @param map
	 * @return             
	 */
	Integer getCountAssembleByTimeAndUid(Map<String, Object> map);

	/**   
	 * 根据某天和uid获取离心工位产量
	 * @Title:getCountCentrifuleByTimeAndUid   
	 * @param map
	 * @return             
	 */
	Integer getCountCentrifuleByTimeAndUid(Map<String, Object> map);

	/**   
	 * 根据某天和uid获取固化工位产量
	 * @Title:getCountSolidByTimeAndUid   
	 * @param map
	 * @return             
	 */
	Integer getCountSolidByTimeAndUid(Map<String, Object> map);

	/**   
	 * 根据某天和uid获切割工位产量
	 * @Title:getCountCutByTimeAndUid   
	 * @param map
	 * @return             
	 */
	Integer getCountCutByTimeAndUid(Map<String, Object> map);

	/**   
	 * 查询班组长的切割工位的工时
	 * @Title:getWorkTimeByUserReport   
	 * @param map
	 * @return             
	 */
	String getWorkTimeByUserReport(Map<String, Object> map);

	/**   
	 * 查询班组长的固化工位的工时
	 * @Title:getSolidWorkTimeByUserReport   
	 * @param map
	 * @return             
	 */
	String getSolidWorkTimeByUserReport(Map<String, Object> map);

	/**   
	 * 查询班组长的离心工位的工时
	 * @Title:getCentrifugeWorkTimeByUserReport   
	 * @param map
	 * @return             
	 */
	String getCentrifugeWorkTimeByUserReport(Map<String, Object> map);

	/**   
	 * 查询班组长的组装工位的工时
	 * @Title:getAssembleWorkTimeByUserReport   
	 * @param map
	 * @return             
	 */
	String getAssembleWorkTimeByUserReport(Map<String, Object> map);

	/**   
	 * 查询班组长的膜丝工位的工时
	 * @Title:getMousseWorkTimeByUserReport   
	 * @param map
	 * @return             
	 */
	String getMousseWorkTimeByUserReport(Map<String, Object> map);
}
